package com.qzsoft.zhjd.home.v2.mapper;

import java.util.List;
import java.util.Map;

import com.qzsoft.zhjd.home.v2.dto.MaterielDateTypeCountDto;
import com.qzsoft.zhjd.home.v2.dto.ProductionCountDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.qzsoft.zhjd.home.v2.dto.AsphaltDataWeightDto;
import com.qzsoft.zhjd.home.v2.dto.EnvDataDto;
import com.qzsoft.zhjd.home.v2.dto.ProductionMonthCountDto;

/**
 * @ClassName ZhjdHomeV2Mapper
 * @Description 养护基地首页数据库接口
 * @author linhuawei
 * @since 2022-08-17
 */
@Mapper
public interface ZhjdHomeV2Mapper {

    /**
     * @Title productionCount
     * @Description 获取产量统计信息
     * @param baseCode 基地主键
     * @return 产量统计信息
     */
    List<ProductionCountDto> productionCount(@Param("baseCode") String baseCode);

    /**
     * @Title productionAsphaltCount
     * @Description 获取沥青指定年份统计信息
     * @param baseCode 基地编号
     * @param year     年份
     * @return 沥青指定年份统计信息
     */
    List<ProductionMonthCountDto> productionAsphaltCount(@Param("baseCode") String baseCode,
            @Param("year") Integer year);

    /**
     * @Title productionCementCount
     * @Description 获取水稳指定年份统计信息
     * @param baseCode 基地编号
     * @param year     年份
     * @return 水稳指定年份统计信息
     */
    List<ProductionMonthCountDto> productionCementCount(@Param("baseCode") String baseCode,
            @Param("year") Integer year);

    /**
     * @Title productionRealTime
     * @Description 生产实时情况
     * @param params 查询条件
     * @return 生产实时情况
     */
    List<AsphaltDataWeightDto> productionRealTime(@Param("params") Map<String, Object> params);

    /**
     * @Title materielCount
     * @Description 收发料统计
     * @param baseCode   基地编号
     * @param weightType 过磅类型
     * @param type       时间：year年，month月，day日
     * @param time       查询时间
     * @return 收发料统计
     */
    List<MaterielDateTypeCountDto> materielCount(@Param("baseCode") String baseCode,
                                                 @Param("weightType") String weightType, @Param("type") String type, @Param("time") String time);

    /**
     * @Title envLatest
     * @Description 获取最新环保数据
     * @param baseCode 基地编号
     * @return 环保数据
     */
    EnvDataDto envLatest(@Param("baseCode") String baseCode);

}
